package cn.iocoder.yudao.module.crossborder.platform.controller.admin.platformcategorymapping.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;

@Schema(description = "管理后台 - 跨境电商平台分类映射新增/修改 Request VO")
@Data
public class PlatformCategoryMappingSaveReqVO {

    @Schema(description = "映射编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "489")
    private Long id;

    @Schema(description = "平台编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10774")
    @NotNull(message = "平台编号不能为空")
    private Long platformId;

    @Schema(description = "本地分类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3538")
    @NotNull(message = "本地分类ID不能为空")
    private Long localCategoryId;

    @Schema(description = "本地分类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @NotEmpty(message = "本地分类名称不能为空")
    private String localCategoryName;

    @Schema(description = "平台分类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2890")
    @NotEmpty(message = "平台分类ID不能为空")
    private String platformCategoryId;

    @Schema(description = "平台分类名称", example = "王五")
    private String platformCategoryName;

    @Schema(description = "平台分类路径")
    private String platformCategoryPath;

    @Schema(description = "映射级别（1一级 2二级 3三级等）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "映射级别（1一级 2二级 3三级等）不能为空")
    private Integer mappingLevel;

    @Schema(description = "映射置信度（0.00-1.00）")
    private BigDecimal mappingConfidence;

    @Schema(description = "是否自动映射", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否自动映射不能为空")
    private Boolean isAutoMapped;

    @Schema(description = "映射规则JSON")
    private String mappingRule;

    @Schema(description = "状态（0正常 1停用）", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "状态（0正常 1停用）不能为空")
    private Integer status;

}